`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date:    12:56:21 09/18/2012 
// Design Name: 
// Module Name:    main 
// Project Name: 
// Target Devices: 
// Tool versions: 
// Description: 
//
// Dependencies: 
//
// Revision: 
// Revision 0.01 - File Created
// Additional Comments: 
//
//////////////////////////////////////////////////////////////////////////////////
module main(sel_dato_i,clk_i,rst_i,busleds_o,bcd_o
    );
	 input clk_i,rst_i;
	 input [3:0] sel_dato_i;
	 output [3:0] busleds_o;
	 output [4:0] bcd_o;
//	  oe_o,wr_o,cs_o,dato_o,posicionregistro_o,dato_i;
	 wire expired,resultadoComparacion,senalComparacion,clk1hz,oe,wr,cs;
	 wire [3:0] posicionRegistro,busleds,dato_i;
	 wire [3:0] dato_mux,busdatos_o;
	 wire [4:0] num_o;
	 assign busleds_o=busleds;
	 assign bcd_o=num_o;
	 
	 Fms maquina(clk_i,rst_i,expired,resultadoComparacion,senalComparacion,posicionRegistro,dato_mux,busdatos_o,busleds,oe,wr,cs);
	 Divider divisor (clk_i ,rst_i,clk1hz);
	 Timer tiempo (expired,rst_i,clk1hz,clk_i);
	 comparador compa (rst_i,dato_mux,dato_i,clk_i,senalComparacion,resultadoComparacion);
	 mux_4_1 mox(clk_i,sel_dato_i,posicionRegistro,dato_mux);
	 binarybcd binbin (dato_mux,num_o,clk_i);
	 sram ramram (wr,cs,dato_i,posicionRegistro,clk_i,busdatos_o);

endmodule
